//package org.dfzt.modules.system.controller;
//
//import cn.hutool.core.util.ReUtil;
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import java.util.ArrayList;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.List;
//import java.util.Map;
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//import com.baomidou.mybatisplus.core.metadata.IPage;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import org.apache.commons.lang.StringUtils;
//import org.dfzt.common.api.vo.Result;
//import org.dfzt.common.exception.SpringBootException;
//import org.dfzt.common.system.service.ISysBaseAPI;
//import org.dfzt.common.system.vo.DictModel;
//import org.dfzt.common.util.oConvertUtils;
//import org.dfzt.modules.system.mapper.OnlineMapper;
//import org.dfzt.modules.online.cgreport.entity.OnlCgreportHead;
//import org.dfzt.modules.online.cgreport.entity.OnlCgreportItem;
//import org.dfzt.modules.online.cgreport.entity.OnlCgreportParam;
//import org.dfzt.common.util.SqlUtil;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//@RestController
//@RequestMapping({"/online/cgreport/api"})
//public class OnlineFormController {
//    private static final Logger a = LoggerFactory.getLogger(OnlineFormController.class);
//    @Resource
//    private ISysBaseAPI sysBaseAPI;
//
//    @Resource
//    OnlineMapper onlineMapper;
//    @GetMapping({"/getColumnsAndData/{code}"})
//    public Result<?> a(@PathVariable("code") String var1, HttpServletRequest var2) {
//        OnlCgreportHead var3 = onlineMapper.getById(var1);
//        if (var3 == null) {
//            return Result.error("实体不存在");
//        } else {
//            Result<?> var4 = this.b(var1, var2);
//            if (var4.getCode().equals(200)) {
//                JSONObject var5 = JSON.parseObject(JSONObject.toJSONString(var4.getResult()));
//                JSONArray var6 = var5.getJSONArray("records");
//                List<OnlCgreportItem> var8 = onlineMapper.getOnlCgreportItemList(var1);
//                HashMap<String,Object> var9 = new HashMap<>();
//                JSONArray var10 = new JSONArray();
//                JSONArray var11 = new JSONArray();
//
//                for (OnlCgreportItem var13 : var8) {
//                    JSONObject var14 = new JSONObject(4);
//                    var14.put("title", var13.getFieldTxt());
//                    var14.put("dataIndex", var13.getFieldName());
//                    var14.put("align", "center");
//                    var14.put("sorter", "true");
//                    String var15;
//                    if (StringUtils.isNotBlank(var13.getFieldHref())) {
//                        var15 = "fieldHref_" + var13.getFieldName();
//                        JSONObject var16 = new JSONObject();
//                        var16.put("customRender", var15);
//                        var14.put("scopedSlots", var16);
//                        JSONObject var17 = new JSONObject();
//                        var17.put("slotName", var15);
//                        var17.put("href", var13.getFieldHref());
//                        var10.add(var17);
//                    }
//
//                    var11.add(var14);
//                    var15 = var13.getDictCode();
//                    List<DictModel> var19 = this.a(var15, var6, var13.getFieldName());
//                    if (var19 != null) {
//                        var9.put(var13.getFieldName(), var19);
//                        var14.put("customRender", var13.getFieldName());
//                    }
//                }
//
//                HashMap<String,Object> var18 = new HashMap<>(3);
//                var18.put("data", var4.getResult());
//                var18.put("columns", var11);
//                var18.put("dictOptions", var9);
//                var18.put("fieldHrefSlots", var10);
//                var18.put("cgreportHeadName", var3.getName());
//                return Result.ok(var18);
//            } else {
//                return var4;
//            }
//        }
//    }
//
//    private List<DictModel> a(String var1, JSONArray var2, String var3) {
//        List<DictModel> var4 = null;
//        if (oConvertUtils.isNotEmpty(var1)) {
//            if (var1.trim().toLowerCase().indexOf("select ") == 0 && (var3 == null || var2.size() > 0)) {
//                var1 = var1.trim();
//                int var5 = var1.lastIndexOf(";");
//                if (var5 == var1.length() - 1) {
//                    var1 = var1.substring(0, var5);
//                }
//
//                String var6 = "SELECT * FROM (" + var1 + ") temp ";
//                String var12;
//                if (var2 != null) {
//                    ArrayList<String> var7 = new ArrayList<>();
//
//                    for(int var8 = 0; var8 < var2.size(); ++var8) {
//                        JSONObject var9 = var2.getJSONObject(var8);
//                        String var10 = var9.getString(var3);
//                        if (StringUtils.isNotBlank(var10)) {
//                            var7.add(var10);
//                        }
//                    }
//
//                    var12 = "'" + StringUtils.join(var7, "','") + "'";
//                    var6 = var6 + "WHERE temp.value IN (" + var12 + ")";
//                }
//
//                List<Map<String, Object>> var11 = onlineMapper.executeSelect(var6);
//                if (var11 != null && var11.size() != 0) {
//                    var12 = JSON.toJSONString(var11);
//                    var4 = JSON.parseArray(var12, DictModel.class);
//                }
//            } else {
//                var4 = this.sysBaseAPI.queryDictItemsByCode(var1);
//            }
//        }
//
//        return var4;
//    }
//
//    /** @deprecated */
//    @Deprecated
//    @GetMapping({"/getColumns/{code}"})
//    public Result<?> a(@PathVariable("code") String var1) {
//        OnlCgreportHead var2 = onlineMapper.getById(var1);
//        if (var2 == null) {
//            return Result.error("实体不存在");
//        } else {
//            List<OnlCgreportItem> var4 = onlineMapper.getOnlCgreportItemList(var1);
//            ArrayList<Map<String,String>> var5 = new ArrayList<>();
//            HashMap<String,List<DictModel>> var6 = new HashMap<>();
//
//            for (OnlCgreportItem var8 : var4) {
//                Map<String, String> var9 = new HashMap<>(1);
//                var9.put("title", var8.getFieldTxt());
//                var9.put("dataIndex", var8.getFieldName());
//                var9.put("align", "center");
//                var9.put("sorter", "true");
//                var5.add(var9);
//                String var10 = var8.getDictCode();
//                if (oConvertUtils.isNotEmpty(var10)) {
//                    List<DictModel> var11 = null;
//                    if (var10.toLowerCase().indexOf("select ") == 0) {
//                        List<Map<String, Object>> var12 = onlineMapper.executeSelect(var10);
//                        if (var12 != null && var12.size() != 0) {
//                            String var13 = JSON.toJSONString(var12);
//                            var11 = JSON.parseArray(var13, DictModel.class);
//                        }
//                    } else {
//                        var11 = this.sysBaseAPI.queryDictItemsByCode(var10);
//                    }
//
//                    if (var11 != null) {
//                        var6.put(var8.getFieldName(), var11);
//                        var9.put("customRender", var8.getFieldName());
//                    }
//                }
//            }
//
//            HashMap<String,Object> var14 = new HashMap<>(1);
//            var14.put("columns", var5);
//            var14.put("dictOptions", var6);
//            var14.put("cgreportHeadName", var2.getName());
//            return Result.ok(var14);
//        }
//    }
//
//    @GetMapping({"/getData/{code}"})
//    public Result<?> b(@PathVariable("code") String var1, HttpServletRequest var2) {
//        OnlCgreportHead var3 = onlineMapper.getById(var1);
//        if (var3 == null) {
//            return Result.error("实体不存在");
//        } else {
//            String sql = var3.getCgrSql().trim().replace(";","");
//            try {
//                Map<String, Object> params = SqlUtil.a(var2);
//
//                String var4 = this.sysBaseAPI.getDatabaseType();
//                List<OnlCgreportParam> var6 = onlineMapper.getOnlCgreportParamList(var1);
//                OnlCgreportParam var8;
//                String var10;
//                if (var6 != null && var6.size() > 0) {
//                    for(Iterator<OnlCgreportParam> var7 = var6.iterator(); var7.hasNext(); sql = sql.replace("${" + var8.getParamName() + "}", var10)) {
//                        var8 = var7.next();
//                        Object var9 = params.get("self_" + var8.getParamName());
//                        var10 = "";
//                        if (var9 != null) {
//                            var10 = var9.toString();
//                        } else if (oConvertUtils.isNotEmpty(var8.getParamValue())) {
//                            var10 = var8.getParamValue();
//                        }
//                    }
//                }
//
//                HashMap var18 = new HashMap();
//                Integer var19 = oConvertUtils.getInt(params.get("pageSize"), 10);
//                Integer var20 = oConvertUtils.getInt(params.get("pageNo"), 1);
//                Page var21 = new Page((long)var20, (long)var19);
//
//                List<OnlCgreportItem> var12 = onlineMapper.getOnlCgreportItemList2(var1);
//                String var13 = "jeecg_rp_temp.";
//                String var14 =oConvertUtils.a(var12, params, var13);
//                if (ReUtil.contains(" order\\s+by ", sql.toLowerCase()) && "SQLSERVER".equalsIgnoreCase(var4)) {
//                    throw new SpringBootException("SqlServer不支持SQL内排序!");
//                } else {
//                    String var15 = "select * from (" + sql + ") jeecg_rp_temp  where 1=1 " + var14;
//                    var15 = SqlUtil.b(var15);
//                    Object var16 = params.get("column");
//                    if (var16 != null) {
//                        var15 = var15 + " order by jeecg_rp_temp." + var16.toString() + " " + params.get("order").toString();
//                    }
//
//                    a.info("报表查询sql=>\r\n" + var15);
//                    IPage var17 = onlineMapper.selectPageBySql(var21, var15);
//                    var18.put("total", var17.getTotal());
//                    var18.put("records", org.dfzt.modules.online.cgform.util.b.d(var17.getRecords()));
//                }
//
//                return Result.ok(var18);
//            } catch (Exception var8) {
//                a.error(var8.getMessage(), var8);
//                return Result.error("SQL执行失败：" + var8.getMessage());
//            }
//        }
//    }
//
//    @GetMapping({"/getQueryInfo/{code}"})
//    public Result<?> b(@PathVariable("code") String var1) {
//        try {
//            List<OnlCgreportItem> var3 = onlineMapper.getOnlCgreportItemList2(var1);
//            ArrayList<Map<String,Object>> var4 = new ArrayList<>();
//            int var5 = 0;
//            Map<String,Object> var8;
//            for(Iterator<OnlCgreportItem> var6 = var3.iterator(); var6.hasNext(); var4.add(var8)) {
//                OnlCgreportItem var7 = var6.next();
//                var8 = new HashMap<>();
//                var8.put("label", var7.getFieldTxt());
//                if (oConvertUtils.isNotEmpty(var7.getDictCode())) {
//                    var8.put("view", "list");
//                } else {
//                    var8.put("view", var7.getFieldType().toLowerCase());
//                }
//
//                var8.put("mode", oConvertUtils.isEmpty(var7.getSearchMode()) ? "single" : var7.getSearchMode());
//                var8.put("field", var7.getFieldName());
//                ++var5;
//                if (var5 > 2) {
//                    var8.put("hidden", "1");
//                }
//            }
//            return Result.ok(var4);
//        } catch (Exception var3) {
//            a.info(var3.getMessage(), var3);
//            return Result.error("查询失败");
//        }
//    }
//
//    @GetMapping({"/getParamsInfo/{code}"})
//    public Result<?> c(@PathVariable("code") String var1) {
//        try {
//            List<OnlCgreportParam> var3 = onlineMapper.getOnlCgreportParamList(var1);
//            return Result.ok(var3);
//        } catch (Exception var4) {
//            a.info(var4.getMessage(), var4);
//            return Result.error("查询失败");
//        }
//    }
//
//    @GetMapping({"/getRpColumns/{code}"})
//    public Result<?> d(@PathVariable("code") String var1) {
//        OnlCgreportHead var3 = onlineMapper.getOne(var1);
//        if (var3 == null) {
//            return Result.error("实体不存在");
//        } else {
//            List<OnlCgreportItem> var5 =onlineMapper.getOnlCgreportItemList(var3.getId());
//            ArrayList<Map<String,String>> var6 = new ArrayList<>();
//            HashMap<String,List<DictModel>> var7 = new HashMap<>();
//            HashMap<String,String> var10;
//            for(Iterator<OnlCgreportItem> var8=var5.iterator(); var8.hasNext(); var6.add(var10)) {
//                OnlCgreportItem var9 = var8.next();
//                var10 = new HashMap<>(1);
//                var10.put("title", var9.getFieldTxt());
//                var10.put("dataIndex", var9.getFieldName());
//                var10.put("align", "center");
//                String var11 = var9.getFieldType();
//                if ("Integer".equals(var11) || "Date".equals(var11) || "Long".equals(var11)) {
//                    var10.put("sorter", "true");
//                }
//
//                String var12 = var9.getDictCode();
//                if (oConvertUtils.isNotEmpty(var12)) {
//                    List<DictModel> var13 = sysBaseAPI.queryDictItemsByCode(var12);
//                    var7.put(var9.getFieldName(), var13);
//                    var10.put("customRender", var9.getFieldName());
//                }
//            }
//
//            HashMap<String,Object> var14 = new HashMap<>(1);
//            var14.put("columns", var6);
//            var14.put("dictOptions", var7);
//            var14.put("cgRpConfigId", var3.getId());
//            var14.put("cgRpConfigName", var3.getName());
//            return Result.ok(var14);
//        }
//
//
//    }
//
//}
